package com.yanti.util;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Date;

public class DateUtils {

    /**
     * 获取指定日期的开始时间（00:00:00）
     * @param date 要处理的日期
     * @return 返回该日期的开始时间
     */
    public static Date getStartOfDay(Date date) {
        if (date == null) {
            return null;
        }
        // 将 java.util.Date 转换为 LocalDateTime
        LocalDateTime localDateTime = date.toInstant()
                .atZone(ZoneId.systemDefault())
                .toLocalDateTime();
        
        // 获取当天的开始时间
        LocalDateTime startOfDay = localDateTime.toLocalDate().atStartOfDay();
        
        // 将 LocalDateTime 转换回 java.util.Date
        return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
    }

    /**
     * 获取当前日期的开始时间（00:00:00）
     * @return 返回当前日期的开始时间
     */
    public static Date getStartOfCurrentDay() {
        LocalDate currentDate = LocalDate.now();
        LocalDateTime startOfDay = currentDate.atStartOfDay();
        return Date.from(startOfDay.atZone(ZoneId.systemDefault()).toInstant());
    }
}